package com.settlement.system.model.entity.common;

import java.util.Date;

import java.io.Serializable;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import com.alibaba.excel.annotation.write.style.HeadStyle;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.settlement.system.converter.BigNumberFormatConvert;
import com.settlement.system.converter.CumulativeAuditMarkConvert;
import com.settlement.system.converter.DateFormatConvert;
import com.settlement.system.converter.DateFormatYearMonthConvert;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * AP_544累计收发存汇总表
 * @author Ximi
 * @since 2020-10-20
 */
@Data
@ExcelIgnoreUnannotated
@HeadStyle(fillBackgroundColor = 9,fillForegroundColor = 9)
@HeadRowHeight(value = 20)
@HeadFontStyle(fontHeightInPoints = 14)
public class TblWpCumulativeIosSummary extends BaseModel implements Serializable {


    /**
     * 主体
     */
    @ExcelProperty(value = "主体")
    @ApiModelProperty(value = "主体")
    private String mainBody;

    /**
     * 截止月份
     */
    @ExcelProperty(value = "截止月结月份",converter = DateFormatYearMonthConvert.class)
    @ApiModelProperty(value = "截止月结月份")
    @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
    private Date closingMonth;

    /**
     * 供应商编号
     */
    @ExcelProperty(value = "供应商编号")
    @ApiModelProperty(value = "供应商编号")
    private String vendorCode;

    /**
     * 供应商名称
     */
    @ExcelProperty(value = "供应商名称")
    @ApiModelProperty(value = "供应商名称")
    private String vendorName;

    /**
     * po
     */
    @ExcelProperty(value = "po",converter= BigNumberFormatConvert.class)
    @ApiModelProperty(value = "po")
    private String poNo;

    /**
     * 发货模式
     */
    @ExcelProperty(value = "发货模式")
    @ApiModelProperty(value = "发货模式")
    private String jitxModel;

    /**
     * po类型
     */
    @ExcelProperty(value = "po类型")
    @ApiModelProperty(value = "po类型")
    private String poType;

    /**
     * 品牌名称
     */
    @ExcelProperty(value = "品牌名称")
    @ApiModelProperty(value = "品牌名称")
    private String brandName;

    /**
     * 条码
     */
    @ExcelProperty(value = "条码",converter = BigNumberFormatConvert.class)
    @ApiModelProperty(value = "条码")
    private String sku;

    /**
     * 原PO
     */
    @ExcelProperty(value = "原PO",converter = BigNumberFormatConvert.class)
    @ApiModelProperty(value = "原PO")
    private String origPoNo;

    /**
     * POSKU
     */
    @ExcelProperty(value = "POSKU",converter = BigNumberFormatConvert.class)
    @ApiModelProperty(value = "POSKU")
    private String poSku;

    @ExcelProperty(value = "档期")
    @ApiModelProperty(value = "档期")
    private String orderSchedule;

    @ExcelProperty(value = "是否稽核",converter = CumulativeAuditMarkConvert.class)
    @ApiModelProperty(value = "是否稽核")
    private String auditMark;

    @ExcelProperty(value = "PO开始时间",converter = DateFormatConvert.class)
    @ApiModelProperty(value = "PO开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date poStartDate;

    @ExcelProperty(value = "状态")
    @ApiModelProperty(value = "状态")
    private String status;

    /**
     * 产品说明
     */
    @ExcelProperty(value = "产品说明")
    @ApiModelProperty(value = "产品说明")
    private String productDescription;

    /**
     * 期初结存数量
     */
    @ExcelProperty(value = "期初结存数量")
    @ApiModelProperty(value = "期初结存数量")
    private Integer startQty;

    /**
     * 累计入库
     */
    @ExcelProperty(value = "累计入库")
    @ApiModelProperty(value = "累计入库")
    private Integer totalStockInQty;

    /**
     * 累计退供
     */
    @ExcelProperty(value = "累计退供")
    @ApiModelProperty(value = "累计退供")
    private Integer totalStockReturnQty;

    /**
     * 累计销售
     */
    @ExcelProperty(value = "累计销售")
    @ApiModelProperty(value = "累计销售")
    private Integer totalSaleOutQty;

    /**
     * 累计客退
     */
    @ExcelProperty(value = "累计客退")
    @ApiModelProperty(value = "累计客退")
    private Integer totalSaleReturnQty;

    /**
     * 累计其他
     */
    @ExcelProperty(value = "累计其他")
    @ApiModelProperty(value = "累计其他")
    private Integer totalOthersQty;

    /**
     * 期末库存
     */
    @ExcelProperty(value = "期末库存")
    @ApiModelProperty(value = "期末库存")
    private Integer endQty;

    /**
     * 最后一期次月客退
     */
    @ExcelProperty(value = "最后一期次月客退")
    @ApiModelProperty(value = "最后一期次月客退")
    private Integer lastpNextmSaleReturnQty;

    /**
     * 最后一期次月其他
     */
    @ExcelProperty(value = "最后一期次月其他")
    @ApiModelProperty(value = "最后一期次月其他")
    private Integer lastpNextMonthOtherQty;

    /**
     * 累计结算
     */
    @ExcelProperty(value = "累计结算")
    @ApiModelProperty(value = "累计结算")
    private Integer totalQty;

    @ExcelProperty(value = "超期库存")
    @ApiModelProperty(value = "超期库存")
    private Integer overdueQty;

    /**
     * 仓库
     */
    @ExcelProperty(value = "仓库")
    @ApiModelProperty(value = "仓库")
    private String warehouse;
}
